behavioral pattern
Blackboard design pattern: provides a computational framework for the design and implementation of systems that integrate large and diverse specialized modules, and implement complex, non-deterministic control strategies
Chain of responsibility pattern: Command objects are handled or passed on to other objects by logic-containing processing objects
Command pattern: Command objects encapsulate an action and its parameters
"Externalize the stack": Turn a recursive function into an iterative one that uses a stack
Interpreter pattern: Implement a specialized computer language to rapidly solve a specific set of problems
Iterator pattern: Iterators are used to access the elements of an aggregate object sequentially without exposing its underlying representation
Mediator pattern: Provides a unified interface to a set of interfaces in a subsystem
Memento pattern: Provides the ability to restore an object to its previous state (rollback)
Null object pattern: Designed to act as a default value of an object
Observer pattern: a.k.a. Publish/Subscribe or Event Listener. Objects register to observe an event that may be raised by another object
Weak reference pattern: De-couple an observer from an observable
Protocol stack: Communications are handled by multiple layers, which form an encapsulation hierarchy
Scheduled-task pattern: A task is scheduled to be performed at a particular interval or clock time (used in real-time computing)
Single-serving visitor pattern: Optimise the implementation of a visitor that is allocated, used only once, and then deleted
Specification pattern: Recombinable business logic in a boolean fashion
State pattern: A clean way for an object to partially change its type at runtime
Strategy pattern: Algorithms can be selected on the fly, using composition
Template method pattern: Describes the program skeleton of a program; algorithms can be selected on the fly, using inheritance
Visitor pattern: A way to separate an algorithm from an object